// components/upload-img/upload-img.js
Component({

  /**
   * 组件的属性列表
   */
  properties: {
    imagePath: {
      type: String,
      value: ''
    },
    fieldname: {
      type: String,
      value: '' 
    },
    canDelete: {
      type: Boolean,
      value: true
    }
  },

  /**
   * 组件的初始数据
   */
  data: {

  },

  /**
   * 组件的方法列表
   */
  methods: {
    chooseImage: function () {
      const page = getCurrentPages()[getCurrentPages().length - 1] // 获取当前页面实例
      const originalData = page.data // 暂存页面当前数据
      
      wx.chooseMedia({
        count: 1,
        mediaType: ['image'],
        sizeType: ['compressed'],
        success: res => {
          const tempFile = res.tempFiles[0]
          // 恢复页面数据
          page.setData(originalData)
          // 触发更新
          this.triggerEvent('chooseImage', {
            fieldname: this.properties.fieldname, 
            tempFilePath: tempFile.tempFilePath
          })
        },
        fail: () => {
          // 失败时也恢复数据
          page.setData(originalData)
        }
      })
    },
    removeImage: function () {
      this.triggerEvent('removeImage', 
        {fieldname:this.properties.fieldname})
    },
    handlePreview(e) {
      const src = e.currentTarget.dataset.src;
      wx.previewImage({
        current: src,  // 当前显示图片
        urls: [src]    // 需要预览的图片列表
      })
    }
  }
})